/*
 * Java VM instruction set
 */

enum {
	Jnop			= 0,
	Jaconst_null		= 1,
	Jiconst_m1		= 2,
	Jiconst_0		= 3,
	Jiconst_1		= 4,
	Jiconst_2		= 5,
	Jiconst_3		= 6,
	Jiconst_4		= 7,
	Jiconst_5		= 8,
	Jlconst_0		= 9,
	Jlconst_1		= 10,
	Jfconst_0		= 11,
	Jfconst_1		= 12,
	Jfconst_2		= 13,
	Jdconst_0		= 14,
	Jdconst_1		= 15,
	Jbipush			= 16,
	Jsipush			= 17,
	Jldc			= 18,
	Jldc_w			= 19,
	Jldc2_w			= 20,
	Jiload			= 21,
	Jlload			= 22,
	Jfload			= 23,
	Jdload			= 24,
	Jaload			= 25,
	Jiload_0		= 26,
	Jiload_1		= 27,
	Jiload_2		= 28,
	Jiload_3		= 29,
	Jlload_0		= 30,
	Jlload_1		= 31,
	Jlload_2		= 32,
	Jlload_3		= 33,
	Jfload_0		= 34,
	Jfload_1		= 35,
	Jfload_2		= 36,
	Jfload_3		= 37,
	Jdload_0		= 38,
	Jdload_1		= 39,
	Jdload_2		= 40,
	Jdload_3		= 41,
	Jaload_0		= 42,
	Jaload_1		= 43,
	Jaload_2		= 44,
	Jaload_3		= 45,
	Jiaload			= 46,
	Jlaload			= 47,
	Jfaload			= 48,
	Jdaload			= 49,
	Jaaload			= 50,
	Jbaload			= 51,
	Jcaload			= 52,
	Jsaload			= 53,
	Jistore			= 54,
	Jlstore			= 55,
	Jfstore			= 56,
	Jdstore			= 57,
	Jastore			= 58,
	Jistore_0		= 59,
	Jistore_1		= 60,
	Jistore_2		= 61,
	Jistore_3		= 62,
	Jlstore_0		= 63,
	Jlstore_1		= 64,
	Jlstore_2		= 65,
	Jlstore_3		= 66,
	Jfstore_0		= 67,
	Jfstore_1		= 68,
	Jfstore_2		= 69,
	Jfstore_3		= 70,
	Jdstore_0		= 71,
	Jdstore_1		= 72,
	Jdstore_2		= 73,
	Jdstore_3		= 74,
	Jastore_0		= 75,
	Jastore_1		= 76,
	Jastore_2		= 77,
	Jastore_3		= 78,
	Jiastore		= 79,
	Jlastore		= 80,
	Jfastore		= 81,
	Jdastore		= 82,
	Jaastore		= 83,
	Jbastore		= 84,
	Jcastore		= 85,
	Jsastore		= 86,
	Jpop			= 87,
	Jpop2			= 88,
	Jdup			= 89,
	Jdup_x1			= 90,
	Jdup_x2			= 91,
	Jdup2			= 92,
	Jdup2_x1		= 93,
	Jdup2_x2		= 94,
	Jswap			= 95,
	Jiadd			= 96,
	Jladd			= 97,
	Jfadd			= 98,
	Jdadd			= 99,
	Jisub			= 100,
	Jlsub			= 101,
	Jfsub			= 102,
	Jdsub			= 103,
	Jimul			= 104,
	Jlmul			= 105,
	Jfmul			= 106,
	Jdmul			= 107,
	Jidiv			= 108,
	Jldiv			= 109,
	Jfdiv			= 110,
	Jddiv			= 111,
	Jirem			= 112,
	Jlrem			= 113,
	Jfrem			= 114,
	Jdrem			= 115,
	Jineg			= 116,
	Jlneg			= 117,
	Jfneg			= 118,
	Jdneg			= 119,
	Jishl			= 120,
	Jlshl			= 121,
	Jishr			= 122,
	Jlshr			= 123,
	Jiushr			= 124,
	Jlushr			= 125,
	Jiand			= 126,
	Jland			= 127,
	Jior			= 128,
	Jlor			= 129,
	Jixor			= 130,
	Jlxor			= 131,
	Jiinc			= 132,
	Ji2l			= 133,
	Ji2f			= 134,
	Ji2d			= 135,
	Jl2i			= 136,
	Jl2f			= 137,
	Jl2d			= 138,
	Jf2i			= 139,
	Jf2l			= 140,
	Jf2d			= 141,
	Jd2i			= 142,
	Jd2l			= 143,
	Jd2f			= 144,
	Ji2b			= 145,
	Ji2c			= 146,
	Ji2s			= 147,
	Jlcmp			= 148,
	Jfcmpl			= 149,
	Jfcmpg			= 150,
	Jdcmpl			= 151,
	Jdcmpg			= 152,
	Jifeq			= 153,
	Jifne			= 154,
	Jiflt			= 155,
	Jifge			= 156,
	Jifgt			= 157,
	Jifle			= 158,
	Jif_icmpeq		= 159,
	Jif_icmpne		= 160,
	Jif_icmplt		= 161,
	Jif_icmpge		= 162,
	Jif_icmpgt		= 163,
	Jif_icmple		= 164,
	Jif_acmpeq		= 165,
	Jif_acmpne		= 166,
	Jgoto			= 167,
	Jjsr			= 168,
	Jret			= 169,
	Jtableswitch		= 170,
	Jlookupswitch		= 171,
	Jireturn		= 172,
	Jlreturn		= 173,
	Jfreturn		= 174,
	Jdreturn		= 175,
	Jareturn		= 176,
	Jreturn			= 177,
	Jgetstatic		= 178,
	Jputstatic		= 179,
	Jgetfield		= 180,
	Jputfield		= 181,
	Jinvokevirtual		= 182,
	Jinvokespecial		= 183,
	Jinvokestatic		= 184,
	Jinvokeinterface	= 185,
	Jxxxunusedxxx		= 186,
	Jnew			= 187,
	Jnewarray		= 188,
	Janewarray		= 189,
	Jarraylength		= 190,
	Jathrow			= 191,
	Jcheckcast		= 192,
	Jinstanceof		= 193,
	Jmonitorenter		= 194,
	Jmonitorexit		= 195,
	Jwide			= 196,
	Jmultianewarray		= 197,
	Jifnull			= 198,
	Jifnonnull		= 199,
	Jgoto_w			= 200,
	Jjsr_w			= 201,

	MAXJAVA			= Jjsr_w+1,

	/* newarray element types (Java VM Specification page 320) */

	T_BOOLEAN		= 4,
	T_CHAR			= 5,
	T_FLOAT			= 6,
	T_DOUBLE		= 7,
	T_BYTE			= 8,
	T_SHORT			= 9,
	T_INT			= 10,
	T_LONG			= 11
};
